1. Field of the Invention
The present invention relates generally to the field of parallel processing and, more specifically, to state objects for specifying dynamic state.
2. Description of the Related Art
In a typical processing environment, and especially in a graphics processing environment, there is a large amount of state information that is transmitted by an application to facilitate the processing of input data in a processing pipeline. The state information is transmitted by the application executing in a central processing unit (CPU) to an external processing unit, such as a graphics processing unit (GPU), via a driver.
Some pieces of state are simple 32-bit integer or floating-point values, and applications commonly use a wide variety of possible values for this type of state. For such “dynamic” state, it is undesirable to require a unique state object for each different value or combination of values. Other types of “static” state are expected to change at a lower frequency and have a smaller set of possible values.
In view of the differences between dynamic and static state information, an efficient mechanism for transmitting dynamic state information to an external processing unit is highly desirable. In prior art techniques, state objects that store state information are configured such that “dynamic” state stored within those state objects must be re-specified each time a state object is used. However, it is undesirable to require applications to re-specify dynamic state at each use, especially in cases when there is a large number of dynamic states.
As the foregoing illustrates, what is needed in the art is a mechanism for efficiently transmitting mixed static and dynamic state information to an external processing unit.